home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / emulation / amigavgb_ppc / demos / test.c < prev    next >
C/C++ Source or Header  |  1999-05-17  |  23KB  |  402 lines

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <graphics.h>
  4.  
  5. void main()
  6. {
  7.   char s[16];
  8.   int i, j, k;
  9.  
  10.   mode(M_TEXT);
  11.   puts("A:text demo");
  12.   puts("B:graphic demo");
  13.  
  14.   i = waitpad(J_A | J_B);
  15.   waitpadup();
  16.  
  17.   if(i == J_A) {
  18.     strcpy(s, "Hello World!");
  19.  
  20.     puts(s);
  21.  
  22.     reverse(s);
  23.     puts(s);
  24.  
  25.     for(i = 0; i <= 0x10; i++) {
  26.       printn(i, 16);
  27.       putchar(' ');
  28.     }
  29.     putchar(EOL);
  30.  
  31.     for(i = 0; i < 3; i++) {
  32.       switch(i)
  33.         {
  34.         case 0:
  35.           printn(0, 10);
  36.           break;
  37.         case 1:
  38.           printn(1, 10);
  39.         break;
  40.         case 2:
  41.           printn(2, 10);
  42.           break;
  43.         default:
  44.           print("Error");
  45.         break;
  46.         }
  47.       putchar(' ');
  48.     }
  49.     putchar(EOL);
  50.  
  51.     itoa(abs(-234), s);
  52.     puts(s);
  53.     itoa(atoi(s), s);
  54.     puts(s);
  55.  
  56.     strcpy(s, "Hello");
  57.     strcat(s, " World!");
  58.     puts(s);
  59.  
  60.     printn(strlen(s), 10);
  61.     putchar(EOL);
  62.  
  63.     printn(strcmp(s, "Hello Earth!"), 10);
  64.     putchar(' ');
  65.     printn(strcmp(s, "Hello World!"), 10);
  66.     putchar(' ');
  67.     printn(strcmp(s, "Hi World!"), 10);
  68.     putchar(EOL);
  69.  
  70.     print("Enter nb: ");
  71.     puts(gets(s));
  72.     print("2 * ");
  73.     print(s);
  74.     print(" = ");
  75.     puts(itoa(atoi(s) * 2, s));
  76.  
  77.     print("Push START");
  78.     waitpad(J_START);
  79.     waitpadup();
  80.   } else {
  81.     mode(M_DRAWING);
  82. /*
  83.  * Basic drawing on screen
  84.  */
  85.     i = 50;
  86.     j = 50;
  87.     k = 0;
  88.     while(1) {
  89.       k = waitpad(J_UP | J_DOWN | J_LEFT | J_RIGHT | J_START);
  90.       if(k & J_START) {
  91.     break;
  92.       }
  93.       if(k & J_UP)
  94.         j--;
  95.       if(k & J_DOWN)
  96.         j++;
  97.       if(k & J_LEFT)
  98.         i--;
  99.       if(k & J_RIGHT)
  100.         i++;
  101.       if(i >= 0 && i <= 0x7F && j >= 0 && j <= 0x77)
  102.         plot(i, j, BLACK, XOR);
  103.       i = i < 0 ? 0 : i;
  104.       j = j < 0 ? 0 : j;
  105.       i = i > 0x7F ? 0x7F : i;
  106.       j = j > 0x77 ? 0x77 : j;
  107.       delay(100);
  108.     }
  109.     drawimage();
  110.     waitpad(J_START);
  111.     waitpadup();
  112.   }
  113. }
  114.  
  115. void drawimage()
  116. {
  117. /* A fish generated with POV and dithered to 4 colors */
  118.  
  119. #asm
  120.     .globl    .draw_image
  121.  
  122.     LD    BC,#img_data
  123.     CALL    .draw_image
  124.     JP    end_img_data
  125.  
  126. img_data:
  127.     ; Image size: 0x80 x 0x78
  128.  
  129.     ; Line 0x00
  130.     .byte    0xFF,0xFF,0xAA,0xFF,0xDB,0xFF,0xAD,0xFF,0xDB,0xFF,0xB6,0xFF,0xDB,0xFF,0xAD,0xFF
  131.     .byte    0xFF,0xFF,0xAA,0xFF,0xDF,0xFF,0x75,0xFF,0xAE,0xFF,0xF5,0xFF,0x5F,0xFF,0xB5,0xFF
  132.     .byte    0xFF,0xFF,0xAA,0xFF,0xDF,0xFF,0x75,0xFF,0xAE,0xFF,0xF5,0xFF,0x5B,0xFF,0xAD,0xFF
  133.     .byte    0xFF,0xFF,0xAA,0xFF,0x76,0xFF,0xAB,0xFF,0xDA,0xFF,0x6D,0xFF,0x55,0xFF,0xAA,0xFF
  134.     .byte    0xFF,0xFF,0xAA,0xFF,0xDD,0xFF,0x6B,0xFF,0xB6,0xFF,0xAB,0xFF,0x6D,0xFF,0xB5,0xFF
  135.     .byte    0xFF,0xFF,0xAA,0xFF,0xDD,0xFF,0x6B,0xFF,0xB5,0xFF,0xDE,0xFF,0x52,0xFF,0x6D,0xFF
  136.     .byte    0xFD,0xFF,0xA5,0xFF,0xB6,0xFF,0x5A,0xFF,0xAB,0xFF,0xB5,0xFF,0xD5,0xFF,0x5A,0xDF
  137.     .byte    0xED,0xFF,0x35,0xFF,0xD5,0xFF,0xAB,0xFF,0x6D,0xFF,0x55,0xFF,0xAA,0xFF,0xB5,0xFF
  138.     .byte    0xB6,0xFF,0x55,0xFF,0x55,0xFF,0x55,0xFF,0x6A,0xFF,0x55,0xFF,0x55,0xFF,0xD5,0x7F
  139.     .byte    0xDB,0xFF,0x24,0xFF,0x55,0xFF,0x55,0xFF,0xAA,0xFF,0x55,0xFF,0x54,0xFF,0x55,0xFF
  140.     .byte    0x55,0xFF,0xAA,0xFF,0x51,0xFF,0x4A,0xFF,0xA8,0xFF,0x25,0xFF,0x90,0xFF,0x4A,0xFF
  141.     .byte    0x55,0xFF,0xAA,0xFF,0x11,0xFF,0xA4,0xFF,0x4A,0xFF,0x21,0xFF,0x94,0xFF,0x41,0xFF
  142.     .byte    0x55,0xFF,0xAA,0xFF,0x11,0xFF,0xAA,0xFF,0x44,0xFF,0x22,0xFF,0x14,0xFF,0x42,0xFF
  143.     .byte    0x55,0xFF,0xA8,0xFF,0x15,0xFF,0xA1,0xFF,0x55,0xFF,0x8A,0xFF,0x52,0xFF,0x8B,0xFF
  144.     .byte    0x8A,0xFF,0xB0,0xDF,0x0A,0xFF,0x30,0xDF,0x05,0xFF,0x10,0xFF,0x65,0xBF,0x60,0x3F
  145.     .byte    0xAA,0xFF,0x00,0xFF,0xAA,0xFF,0x00,0xFF,0x54,0xFF,0x01,0xFF,0x48,0xFF,0x02,0xFF
  146.  
  147.     ; Line 0x08
  148.     .byte    0xD6,0xFF,0xBB,0xFF,0xD5,0xFF,0xAD,0xFF,0xB6,0xFF,0xD5,0xFF,0xAA,0xFF,0xAA,0xFF
  149.     .byte    0xDA,0xFF,0x6D,0xFF,0xB5,0xFF,0x56,0xFF,0xAA,0xFF,0x55,0xFF,0xAA,0xFF,0xB5,0xFF
  150.     .byte    0xD5,0xFF,0x55,0xFF,0xB5,0xFF,0xAA,0xFF,0xAA,0xFF,0x55,0xFF,0xAA,0xFF,0x55,0xFF
  151.     .byte    0x55,0xFF,0x6A,0xFF,0x55,0xFF,0xAA,0xFF,0xAA,0xFF,0x55,0xFF,0xAA,0xFF,0x55,0xFF
  152.     .byte    0x55,0xFF,0xAA,0xFF,0x55,0xFF,0xAA,0xFF,0xAA,0xFF,0x55,0xFF,0xAA,0xFF,0x55,0xFF
  153.     .byte    0xAA,0xFF,0xAA,0xFF,0x55,0xFF,0xAA,0xFF,0xAA,0xFF,0x55,0xFF,0xA9,0xFF,0x4A,0xFF
  154.     .byte    0xB5,0xDF,0xB5,0xDF,0x35,0xDF,0xF5,0x9F,0x95,0xDF,0x3A,0xCF,0x35,0xCF,0xDC,0x87
  155.     .byte    0x55,0xFF,0x55,0xFE,0x55,0xFE,0x55,0xFE,0x52,0xFC,0xA8,0xFC,0x52,0xFC,0xA5,0xF0
  156.     .byte    0x55,0x7F,0x55,0x7F,0x2A,0x7F,0x55,0x7F,0x49,0x7F,0x2A,0x3E,0xA4,0x3D,0x02,0x02
  157.     .byte    0x52,0xFF,0x4A,0xFF,0x28,0x7F,0x52,0xFB,0x28,0xFB,0x92,0xFF,0x44,0x77,0x52,0x77
  158.     .byte    0x21,0xFF,0x94,0xFF,0x42,0xFF,0x94,0xFF,0x40,0xFF,0x92,0xFF,0x00,0xFF,0xA8,0xFF
  159.     .byte    0x14,0xFF,0x41,0xFF,0x10,0xFF,0x85,0xFF,0x20,0xFF,0x04,0xFF,0x80,0xFF,0x08,0xFF
  160.     .byte    0x10,0xFF,0x0A,0xFF,0x41,0xFF,0x10,0xFF,0x04,0xFF,0x90,0xFF,0x00,0xFF,0x02,0xFF
  161.     .byte    0x44,0xFF,0x26,0xFF,0x16,0xFF,0x85,0xFF,0x24,0xFF,0x84,0xFF,0x0D,0xFF,0x0E,0xFF
  162.     .byte    0x49,0xFF,0x00,0x7F,0x24,0xFF,0x80,0x7F,0x20,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
  163.     .byte    0x28,0xFF,0x01,0xFF,0x84,0xFF,0x10,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
  164.  
  165.     ; Line 0x10
  166.     .byte    0xAA,0xFF,0xAA,0xFF,0xAA,0xFF,0xAA,0xFF,0x55,0xFF,0xAA,0xFF,0x95,0xFF,0x52,0xFF
  167.     .byte    0xAA,0xFF,0xAA,0xFF,0xAA,0xFF,0xAA,0xFF,0x55,0xFF,0xAA,0xFF,0x55,0xFF,0xAA,0xFF
  168.     .byte    0xAA,0xFF,0xAA,0xFF,0xAA,0xFF,0x95,0xFF,0x52,0xFF,0xA9,0xFF,0x4A,0xFF,0xA8,0xFF
  169.     .byte    0xAA,0xFF,0x95,0xFF,0x52,0xFF,0x4A,0xFF,0xA9,0xFF,0x25,0xFF,0x94,0xFF,0x4A,0xFF
  170.     .byte    0xAA,0xFF,0x55,0xFF,0xAA,0xFF,0x55,0xFF,0x4A,0xFF,0x29,0xFF,0xA4,0xFF,0x52,0xFF
  171.     .byte    0xA4,0xFF,0x2A,0xFF,0xA1,0xFF,0x55,0xFF,0x48,0xFF,0x25,0xFF,0x94,0xFF,0x4A,0xFF
  172.     .byte    0x8E,0xD3,0x3F,0xC1,0x37,0xC8,0x2B,0xD4,0xBD,0xC2,0x0A,0xF5,0xBB,0xC4,0x25,0xDA
  173.     .byte    0x42,0xE8,0x73,0x88,0xFF,0x00,0xE7,0x10,0xAD,0x52,0xDD,0x22,0x9F,0x60,0x5F,0xA0
  174.     .byte    0xA0,0x00,0x54,0x06,0xF0,0x06,0xFB,0x08,0xB7,0x48,0xFE,0x01,0xE7,0x10,0xFF,0x00
  175.     .byte    0x00,0x0F,0xF6,0x13,0x9A,0x03,0xFC,0x03,0xFE,0x21,0xFF,0x00,0xDF,0x40,0xFF,0x40
  176.     .byte    0x09,0xFF,0x88,0xF7,0x28,0xE7,0x8C,0xF3,0x1E,0xC3,0xDE,0x21,0xD5,0x2A,0xFB,0x04
  177.     .byte    0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x20,0xDF,0x20,0xBF,0x00,0x7F
  178.     .byte    0x40,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
  179.     .byte    0x0D,0xFF,0x0E,0xFF,0x06,0xFF,0x06,0xFF,0x07,0xFF,0x06,0xFF,0x03,0xFF,0x03,0xFF
  180.     .byte    0x00,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x80,0xFF,0x40,0xFF,0x20,0xFF
  181.     .byte    0x00,0xFF,0x00,0xFF,0x80,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
  182.  
  183.     ; Line 0x18
  184.     .byte    0xAA,0xFF,0x55,0xFF,0x92,0xFF,0x49,0xFF,0xAA,0xFF,0x55,0xFF,0x92,0xFF,0x49,0xFF
  185.     .byte    0x54,0xFF,0x4A,0xFF,0xA9,0xFF,0x55,0xFF,0x22,0xFF,0x54,0xFF,0x4A,0xFF,0x20,0xFF
  186.     .byte    0x95,0xFF,0x4A,0xFF,0x51,0xFF,0x2A,0xFF,0x85,0xFF,0x50,0xFF,0x8A,0xFF,0x51,0xFF
  187.     .byte    0x25,0xFF,0xA8,0xFF,0x45,0xFF,0x28,0xFF,0x45,0xFF,0x20,0xFF,0x94,0xFF,0x02,0xFF
  188.     .byte    0x15,0xFF,0xA0,0xFF,0x15,0xFF,0xA0,0xFF,0x15,0xFF,0x80,0xFF,0x54,0xFF,0x01,0xFF
  189.     .byte    0x21,0xFF,0x94,0xFF,0x42,0xFF,0x28,0xFF,0x02,0xFF,0xA8,0xFF,0x02,0xFF,0x27,0xFF
  190.     .byte    0x7D,0xC2,0x28,0xD7,0xB5,0xCA,0x70,0xCF,0x24,0xDF,0xC0,0xFF,0x20,0xFF,0x80,0xFF
  191.     .byte    0x1F,0xE0,0xAE,0x51,0xAF,0xD0,0x32,0xDF,0x02,0xFF,0x00,0xFF,0x08,0xF7,0x95,0x6A
  192.     .byte    0xDF,0x20,0x87,0x68,0x57,0xA8,0xCC,0xF7,0x0A,0xF5,0x4A,0xF5,0x07,0xF8,0xB3,0x6C
  193.     .byte    0xDF,0x20,0x7E,0x81,0x5F,0xA0,0xBC,0x42,0x87,0x78,0xA0,0x5D,0xF9,0x06,0xFE,0x01
  194.     .byte    0xB6,0x48,0x7C,0x03,0x73,0x8C,0xE1,0x1A,0xE5,0x12,0x8B,0x64,0x07,0xC8,0x95,0x6A
  195.     .byte    0x80,0x7F,0x80,0x7F,0x60,0x9F,0x40,0xBF,0xB0,0x4F,0xD2,0x2D,0x74,0x83,0xF4,0x2B
  196.     .byte    0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
  197.     .byte    0x01,0xFF,0x01,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF
  198.     .byte    0x90,0xFF,0xD0,0xFF,0xA4,0xFB,0xDA,0xF5,0xEC,0xFB,0x74,0xFB,0x69,0xFE,0x30,0xFF
  199.     .byte    0x80,0xFF,0xC0,0xBF,0xC0,0xBF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF,0x80,0xFF
  200.  
  201.     ; Line 0x20
  202.     .byte    0xA4,0xFF,0x12,0xFF,0xA9,0xFF,0x44,0xFF,0x22,0xFF,0x91,0xFF,0x48,0xFF,0x04,0xFF
  203.     .byte    0x95,0xFF,0x40,0xFF,0x2A,0xFF,0x81,0xFF,0x28,0xFF,0x05,0xFF,0xA0,0xFF,0x09,0xFF
  204.     .byte    0x08,0xFF,0xA5,0xFF,0x10,0xFF,0x44,0xFF,0x11,0xFF,0x44,0xFF,0x11,0xFF,0x04,0xFF
  205.     .byte    0x51,0xFF,0x08,0xFF,0xA2,0xFF,0x08,0xFF,0x22,0xFF,0x08,0xFF,0x41,0xFF,0x08,0xFF
  206.     .byte    0x54,0xFF,0x01,0xFF,0x49,0xFF,0x02,0xFF,0xA4,0xFF,0x0A,0xFF,0x18,0xFF